PHP代码中调用exec执行带中文命令字符集问题

来源:07素材网 01月08日 10:40
情况是这样的,最近公司做了个项目,其中后台上传的文档不论啥格式都先转换成pdf,然后在把pdf转换成swf,然后就用php的exec去执行的命令。

刚开始测试的时候都是用的英文名称,后用中文名称发现,转换总是报错,然后把命令打印出来,拿去linux下直接执行又是没问题的,找了好久的问题,直到发现这篇文章 《PHP 调用 exec 执行中文命令的坑》,详细的大家可以去看看

解决办法:

在exec 的命令前首先指定字符集: 

$set_charset = 'export LANG=en_US.UTF-8;';
$trans_pdf = "unoconv -f pdf  -o '{$file_info['file_path']}.pdf' '{$file_info['file_path']}' 2>&1";
putenv('PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin');
exec("export DISPLAY=:0.0");
exec($set_charset.$trans_pdf,$p,$s);
原文出处:http://www.phpzero.com/post-63.html
版权声明:本文来源地址若非本站均为转载,若侵害到您的权利,请及时联系我们,我们会在第一时间进行处理。

头条

在使用SQLite3时遇到的几个坑

在使用SQLite3时遇到的几个坑

《本打算在SQLite3数据库里执行一个查询语句,使用的是php语言,起初遇到的是权限问题: permission denied,因为SQLite3数据库文件和PHP执行者属于两个不同的用户,首先需要对这个文件执行mode 777的权限开放,然后,又遇到了下面这样的PHP错误